package listbyorder.access001_100.test1;

import java.util.HashMap;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/6 12:52
 */
public class Solution1 {
    /*
    基本思路：
        遍历数组，将每个位置的元素存储HashMap中，键位元素值，值为索引值
        遍历到某个位置的时候，用target减去当前位置的值获取当前的目标值，检查map中是否记录过当前的目标值
        如果记录过，就可以返回结果了
     */
    public int[] twoSum(int[] nums, int target) {
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int cur = target - nums[i];
            if (map.containsKey(cur)) {
                return new int[]{map.get(cur), i};
            }
            map.put(nums[i], i);
        }
        throw new RuntimeException("没有找到满足条件的结果");
    }
}
